<!DOCTYPE html>
<html lang="">

<head>
	<meta name="generator" content="Hugo 0.73.0" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Ap Chen ">
<meta name="description" content="软件问题历史 1996年6月4日因软件失效在发射40秒后爆炸，原因是惯性参考系统软件的数据转换异常造成的失效。 2004年12月20日，美空军第" />
<meta name="keywords" content="blog" />
<meta name="robots" content="noodp" />

<link rel="canonical" href="https://fziks.gitee.io/notes/software-enginerring/1-%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%BC%95%E8%AE%BA/" />

<meta itemprop="name" content="1-软件工程引论">
<meta itemprop="description" content="软件问题历史 1996年6月4日因软件失效在发射40秒后爆炸，原因是惯性参考系统软件的数据转换异常造成的失效。 2004年12月20日，美空军第">
<meta itemprop="datePublished" content="2020-03-01T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2020-03-01T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="1704">



<meta itemprop="keywords" content="" />
<meta property="og:title" content="1-软件工程引论" />
<meta property="og:description" content="软件问题历史 1996年6月4日因软件失效在发射40秒后爆炸，原因是惯性参考系统软件的数据转换异常造成的失效。 2004年12月20日，美空军第" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://fziks.gitee.io/notes/software-enginerring/1-%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%BC%95%E8%AE%BA/" />
<meta property="article:published_time" content="2020-03-01T00:00:00+00:00" />
<meta property="article:modified_time" content="2020-03-01T00:00:00+00:00" />

<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="1-软件工程引论"/>
<meta name="twitter:description" content="软件问题历史 1996年6月4日因软件失效在发射40秒后爆炸，原因是惯性参考系统软件的数据转换异常造成的失效。 2004年12月20日，美空军第"/>


<link rel="apple-touch-icon" sizes="60x60" href="https://fziks.gitee.io/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://fziks.gitee.io/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://fziks.gitee.io/icons/favicon-16x16.png">
<link rel="manifest" href="https://fziks.gitee.io/icons/site.webmanifest">
<link rel="mask-icon" href="https://fziks.gitee.io/icons/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="https://fziks.gitee.io/icons/favicon.ico">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-config" content="/icons/browserconfig.xml">
<meta name="theme-color" content="#ffffff">

<title>1-软件工程引论</title>


<link rel="stylesheet" href="//at.alicdn.com/t/font_1559566_wk214kwa2dn.css">


    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">



    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css" integrity="sha256-WAgYcAck1C1/zEl5sBl5cfyhxtLgKGdpI3oKyJffVRI=" crossorigin="anonymous" />
    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.css" integrity="sha256-a2tobsqlbgLsWs7ZVUGgP5IvWZsx8bTNQpzsqCSm5mk=" crossorigin="anonymous" />
    
   <link href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/materia/bootstrap.min.css" rel="stylesheet" integrity="sha384-1tymk6x9Y5K+OF0tlmG2fDRcn67QGzBkiM3IgtJ3VrtGrIi5ryhHjKjeeS60f1FA" crossorigin="anonymous">
    
    
    <link rel="stylesheet" href="https://fziks.gitee.io/sass/main_cdn.min.270b43bb8631af4497ed45b90db42c517e86c9511418de9152f134d02ed32b87.min.2192baea245cf318085511589e62bfbdb3fbe4fb0eef718f1be9af91c10542ce.css" integity="sha256-IZK66iRc8xgIVRFYnmK/vbP75PsO73GPG&#43;mvkcEFQs4=">

</head>

<body style="overflow-x: unset;">
	<div class="container-fluid">
		<div class="row d-print-block">
			<div class="col-12 col-md-3 col-lg-2 bd-sidebar d-print-none">
				<div class="d-flex mt-3 border-bottom">
        <span class="navbar-brand w-100" style="display: grid;">
            <small>
                <a href="https://fziks.gitee.io/" class="text-black-50">
                    <i class="iconfont icon-back-arrow-"></i>
                </a>
                Ap Chen's
            </small>
            <a class="text-dark" href="https://fziks.gitee.io/notes/">
                Notes
            </a>
        </span>
        <button class="btn btn-link text-dark d-md-none p-0 ml-3" type="button" data-toggle="collapse"
            data-target="#bd-docs-nav" aria-controls="bd-docs-nav" aria-expanded="true"
            aria-label="Toggle docs navigation">
            <i class="fad fa-bars"></i>
        </button>
    </div>
				<nav id="bd-docs-nav" class="collapse bd-links">
    
    
    
    <div class="bd-toc-item">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/computer-network/">
            
            
                <span class="icontext">S</span>
            
            
            计算机网络
        </a>
    </div>
    
    
    
    <div class="bd-toc-item">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/operating-system/">
            
            
                <span class="icontext">S</span>
            
            
            操作系统
        </a>
    </div>
    
    
    
    <div class="bd-toc-item">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/database/">
            
            
                <span class="icontext">S</span>
            
            
            数据库
        </a>
    </div>
    
    
    
    <div class="bd-toc-item">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/cs50-introduction-to-computer-science/">
            
            
                <span class="icontext">S</span>
            
            
            CS50 MIT
        </a>
    </div>
    
    
    
    <div class="bd-toc-item active bg-light">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/software-enginerring/">
            <i class="iconfont icon-back-arrow-reverse"></i>
            软件工程
        </a>
        <ul class="nav bd-sidenav">
            
            
            <li class="active">
                <a href="https://fziks.gitee.io/notes/software-enginerring/1-%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%BC%95%E8%AE%BA/">
                    <i class="fad fa-chevron-right mr-1"></i>
                    1-软件工程引论
                </a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/2-%E8%BD%AF%E4%BB%B6%E8%BF%87%E7%A8%8B%E6%A8%A1%E5%9E%8B/">2-软件过程模型</a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/3-%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82/">3-软件需求与分析</a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/4-%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1-sa/">4-软件设计-SA</a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/5-%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1-ooad/">5-软件设计-OOAD</a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/6-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/">6-设计模式</a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/7-%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%92%8C%E9%AA%8C%E8%AF%81/">7-软件测试和验证</a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/8-%E8%BD%AF%E4%BB%B6%E7%BB%B4%E6%8A%A4%E5%92%8C%E6%BC%94%E5%8C%96/">8-软件维护和演化</a>
            </li>
            
            
            
            <li>
                <a href="https://fziks.gitee.io/notes/software-enginerring/9-%E5%AE%9E%E9%99%85%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B%E6%A1%88%E4%BE%8B/">9-实际开发流程案例</a>
            </li>
            
            
        </ul>
    </div>
    
    
    
    <div class="bd-toc-item">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/advanced-programming/">
            
            
                <span class="icontext">A</span>
            
            
            高级程序设计
        </a>
    </div>
    
    
    
    <div class="bd-toc-item">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/deep-learning/">
            
            
                <span class="icontext">O</span>
            
            
            深度学习基础
        </a>
    </div>
    
    
    
    <div class="bd-toc-item">
        <a class="bd-toc-link" href="https://fziks.gitee.io/notes/%E6%96%87%E7%8C%AE%E7%AE%A1%E7%90%86%E4%B8%8E%E4%BF%A1%E6%81%AF%E5%88%86%E6%9E%90/">
            
            
                <span class="icontext">O</span>
            
            
            文献管理与信息分析
        </a>
    </div>
    
    
</nav>
			</div>
			<div class="col-12 col-md-9 col-lg-10 d-print-block">
				<div class="row d-print-block">
					<main class="col-12 col-md-10 col-lg-9 py-md-3 pl-md-5 bd-content d-print-block" role="main">
						<div id="title" class="my-4 border-bottom">
							<span>软件工程</span>
							<h2>1-软件工程引论</h2>
							<footer>
								<span>
									<i class="iconfont icon-NewFile mr-2"></i>
									2020-03-01 08:00 CST
								</span> <br />
								<span>
									<i class="iconfont icon-modify mr-2"></i>
									2020-03-01 08:00 CST
								</span> <br />
								<span>
									<i class="iconfont icon-copyright mr-2"></i>
									CC BY-NC 4.0
								</span>
							</footer>
						</div>
						<div id="content" class="hl-h2">
							
							
							
							
							
							
							
							
							
							
							
							
							<h2 id="软件问题历史">软件问题历史<a href="#软件问题历史" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h2>
<ul>
<li>1996年6月4日因软件失效在发射40秒后爆炸，原因是惯性参考系统软件的数据转换异常造成的失效。</li>
<li>2004年12月20日，美空军第422测试评估大队的一架F-22战斗机因软件问题在起飞过程中失控坠毁。</li>
<li>2003年8月14日，美国北部电力丢失，原因是多计算机系统试图同时访问同一资源引起的软件失效</li>
<li>2004年9月14日，5 p.m. 美国400架飞机失去联络，原因是空管软件时钟缺陷</li>
<li>2005年11月1日，东京证券交易所因为软件升级出现系统故障，导致早间股市“停摆”</li>
<li>2002年NIST估计软件问题造成美国年经济损失约600亿美元，占GDP的0.6%</li>
<li>2007年5月17日和18日，诺顿杀毒软件导致全部安装了该软件的计算机系统瘫痪</li>
</ul>
<h2 id="软件危机">软件危机<a href="#软件危机" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h2>
<ul>
<li>表现：成本高，软件质量得不到保证，进度难以控制，维护非常困难</li>
<li>根本原因
<ul>
<li>逻辑产品</li>
<li>复杂性高</li>
<li>规模大</li>
<li>缺乏有效、系统的原理、原则、方法和工具的指导与辅助</li>
</ul>
</li>
<li>软件工程：为克服软件危机而提出的一种概念
<ul>
<li>核心内容：按工程化的原则和方法组织软件开发工作</li>
<li>主要任务：通过提供规范化的分析设计方法及工具软件，来避免或减少软件错误的发生，为最终根除软件危机提供强有利的技术保障</li>
</ul>
</li>
<li>软件产品没有“质保”，没有“三包”</li>
<li>复杂系统的五个共同属性（Grady Booch）
<ul>
<li>Hierarchic Structure</li>
<li>Relative Primitives</li>
<li>Separation of Concerns</li>
<li>Common Patterns</li>
<li>Stable Intermediate Forms</li>
</ul>
</li>
</ul>
<h2 id="软件工程内容">软件工程内容<a href="#软件工程内容" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h2>
<p>软件需求
,软件设计
,软件建模
,软件体系结构
,设计模式
,软件构造
,软件测试
,软件维护
,软件配置管理
,软件工程管理
,软件过程
,软件工程工具与方法
,软件质量</p>
<h2 id="软件工程目标">软件工程目标<a href="#软件工程目标" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h2>
<p>可修改性，有效性，可靠性，可理解性，可维护性，可重用性，可适应性，可移植性，可追踪性，可互相操作性</p>
<h2 id="软件工程原则">软件工程原则<a href="#软件工程原则" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h2>
<ul>
<li>抽象，信息隐藏，模块化，局部化，一致性，完整性，可验证性</li>
<li>Davis 提出的软件工程原则
<ol>
<li>质量放在首位</li>
<li>高质量的软件是可能的</li>
<li>尽早向客户提供产品</li>
<li>在编写需求之前确定问题</li>
<li>评估可选设计方案</li>
<li>使用适当的过程模型</li>
<li>在不同阶段使用不同的语言</li>
<li>最小化智力差距</li>
<li>将技术置于工具之前</li>
<li>在使之更快之前，请确保其正确性</li>
<li>检查代码</li>
<li>好的管理比好的技术更重要</li>
<li>人是成功的关键</li>
<li>勿盲目跟风</li>
<li>承担责任</li>
</ol>
</li>
<li>Walker Royce的现代软件管理十大原则
<ol>
<li>基于架构优先的方法建立过程。</li>
<li>建立一个迭代过程，以通过此过程尽早解决风险。</li>
<li>强调基于组件的开发，以减少编码工作量。</li>
<li>应该建立变更管理来处理迭代过程。</li>
<li>增强迭代开发过程环境（称为双向工程），以通过自动化工具在多个制品上频繁地进行多次变更。</li>
<li>使用基于模型和计算机可处理的符号来进行设计。</li>
<li>建立质量控制和项目进度评估的客观过程，包括评估所有中间制品。</li>
<li>为能够更早地评估中间制品，使用基于演示的方法，将其转换为用户场景的可执行演示。</li>
<li>计划增量式发布多个版本，每个版本由一组使用场景组成，并在细节上逐步演化。</li>
<li>建立一个可配置的过程，因为没有一个过程适合所有的软件开发。</li>
</ol>
</li>
</ul>
<h2 id="中间件">中间件<a href="#中间件" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h2>
<ul>
<li>在操作系统层之上的计算抽象层，提升编程抽象层次</li>
<li>屏蔽了底层异构环境</li>
<li>三大中间件平台：CORBA, J2EE, .NET</li>
<li>OMG(Object Management Group)
<ul>
<li>以 UML 为核心颁布技术无关建模标准：MOF, XMI, CWM, MDA</li>
<li>MDA 思想：分离业务功能分析与设计和实现技术与平台之间紧耦合的关系，从而将技术与平台变化对系统的影响降低到最小程度</li>
</ul>
</li>
<li>MDA 抽象层次划分
<ul>
<li>PIM: Platform-Independent Model，描述系统设计层次</li>
<li>PSM: Platform-Specific Model</li>
</ul>
</li>
<li>MDA 软件开发生命周期</li>
</ul>
<p><img src="https://fziks.gitee.io/images/content/MDA.png" alt="MDA"></p>
<h2 id="历史">历史<a href="#历史" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h2>
<ul>
<li>软件工程：方法学</li>
<li>程序设计语言：实现层</li>
<li>提高抽象层次角度
<ul>
<li>以机器为中心</li>
<li>以应用为中心</li>
<li>以企业为中心</li>
</ul>
</li>
<li>程序员角色分化</li>
</ul>
<h3 id="程序设计语言">程序设计语言<a href="#程序设计语言" class="anchor" aria-hidden="true"><i class="iconfont icon-link"></i></a></h3>
<ul>
<li>First-generation languages (1954-1958)
<ul>
<li>FORTRAN I 数学表达式</li>
<li>ALGOL 58 数学表达式</li>
<li>Flowmatic 数学表达式</li>
<li>IPL V 数学表达式</li>
</ul>
</li>
<li>Second-generation languages (1959-1961)
<ul>
<li>FORTRAN II 子程序、单独编译</li>
<li>ALGOL 60 块结构、数据类型</li>
<li>COBOL 数据描述、文件处理</li>
<li>Lisp 列表处理、指针、垃圾收集</li>
</ul>
</li>
<li>Third-generation languages (1962-1970)
<ul>
<li>PL/1 FORTRAN+ALGOL+COBOL</li>
<li>ALGOL 68: ALGOL 60 严格继承</li>
<li>Pascal: ALGOL 60 简单继承(71,Wirth,Program=Algorithm+Data Structure)</li>
<li>Simula 类、数据抽象（OOP 的起源）</li>
<li>68年 Dijkstra goto considered harmful</li>
</ul>
</li>
<li>断代 (1970-1980)
<ul>
<li>C</li>
<li>FORTRAN 77</li>
</ul>
</li>
<li>面向对象 (1980-1990)
<ul>
<li>Smalltalk 80（第一个广泛使用的 OOPL）</li>
<li>C++ (84)</li>
<li>Ada83</li>
<li>Eiffel</li>
</ul>
</li>
<li>C++ 退出垄断(2005)：机器性能的提升是编程语言的选择开始转向“人”的因素（好用）
<ul>
<li>使用脚本语言的性能损失对真实世界的程序来讲经常微不足道，因为真实世界的程序往往受I/O事件等待、网络延迟以及缓存列填充等限制，而非CPU的自身效率</li>
</ul>
</li>
<li>Emergence of frameworks (1990-2000)
<ul>
<li>Visual Basic: Windows GUI 开发</li>
<li>Java</li>
<li>Python</li>
<li>J2EE</li>
<li>.NET</li>
<li>Visual C#: .NET 架构下 Java 竞争者</li>
<li>Visual Basic: .NET 架构下 Visual Basic</li>
</ul>
</li>
<li>动态脚本语言
<ul>
<li>Javascript</li>
<li>Python</li>
<li>Ruby</li>
</ul>
</li>
<li>函数式编程
<ul>
<li>Scala</li>
<li>Go</li>
<li>Java 8</li>
</ul>
</li>
</ul>

						</div>
					</main>
					<div class="d-none d-lg-block col-lg-3 bd-toc d-print-none">
						<div class="btn-group-vertical w-100 my-3">
    
    <a class="btn btn-outline-secondary text-dark w-100 p-2" href="https://list.html" target="_blank">
        <i class="iconfont icon-LC_icon_list_line"></i><br />待更新列表
    </a>
    

    
    <a class="btn btn-outline-secondary text-dark w-100 p-2" href="mailto:littlegreedy@qq.com"
        target="_blank">
        <i class="iconfont icon-discussion"></i><br />纠错与咨询
    </a>
    
    
    
    
        <a class="btn btn-outline-secondary text-dark w-100 p-2" href="#" onclick="window.print()">
            <i class="iconfont icon-dayin"></i><br />打印本页
        </a>
    
    
</div>
						<h4 class="card-title pb-0">目录</h4>
						<nav id="TableOfContents">
  <ul>
    <li><a href="#软件问题历史">软件问题历史</a></li>
    <li><a href="#软件危机">软件危机</a></li>
    <li><a href="#软件工程内容">软件工程内容</a></li>
    <li><a href="#软件工程目标">软件工程目标</a></li>
    <li><a href="#软件工程原则">软件工程原则</a></li>
    <li><a href="#中间件">中间件</a></li>
    <li><a href="#历史">历史</a>
      <ul>
        <li><a href="#程序设计语言">程序设计语言</a></li>
      </ul>
    </li>
  </ul>
</nav>
						
						
						<div id="disqus_thread"></div>
							<script>
							

							

							(function() { 
							var d = document, s = d.createElement('script');
							s.src = "https://"+"your site name on disqus"+".disqus.com/embed.js";
							s.setAttribute('data-timestamp', +new Date());
							(d.head || d.body).appendChild(s);
							})();
							</script>
							<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>                  
					  	</div>
						
					</div>
				</div>
			</div>
		</div>
	</div>

	<script
    src="https://code.jquery.com/jquery-3.4.1.min.js"
    integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
    crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"
onload="renderMathInElement(document.body);"></script>

<script type="text/javascript" src="https://fziks.gitee.io/custom.min.d3e1b7647f32dbe7e0140398739a26dad3f3470fc1eebe0741ef33668f1b7bd0b2917dc6efb9f0d9f1092b91dca502cab1b883863f02530133a8a8ef609926af.js" integrity="sha512-0&#43;G3ZH8y2&#43;fgFAOYc5om2tPzRw/B7r4HQe8zZo8be9CykX3G77nw2fEJK5HcpQLKsbiDhj8CUwEzqKjvYJkmrw=="></script>
<script type="text/javascript">

document.addEventListener("DOMContentLoaded", function () {
    renderMathInElement(
        document.body, {
            delimiters: [
                {
                    left: "$$",
                    right: "$$",
                    display: true
                },
                {
                    left: "\\[",
                    right: "\\]",
                    display: true
                },
                {
                    left: "$",
                    right: "$",
                    display: false
                },
                {
                    left: "\\(",
                    right: "\\)",
                    display: false
                }
            ],
            strict: false
        }
    );
});


$(document).on('click', 'a[href^="#"]', function (event) {
    event.preventDefault();

    $('html, body').animate({
        scrollTop: $($.attr(this, 'href')).offset().top
    }, 500);
});
</script>




</body>

</html>